import Vue from 'vue'
import Vuex from 'vuex'

// 导入日志打印插件
import createLogger from 'vuex/dist/logger'
// 导入持久化插件
import createPersistedState from "vuex-persistedstate";
import { Toast } from 'vant';


Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    //收藏列表
    // 我的收藏组件在取数据时有的话就返回，没有则返回空数组
    // collectlist: localStorage.getItem('vuex') ? JSON.parse(localStorage.getItem('vuex')).collectlist : [],
    collectlist: [],
    // 定义一个数组，用来存储购物车里的商品
    shopCartList: [],
  },
  getters: {
  },
  mutations: {
    // 收藏店铺
    collect(state, payload) {
      state.collectlist.push(payload);
      // 轻提示
      Toast({
        message: '店铺收藏成功',
        icon: 'passed',
      });
      // 将数据存储到本地存储
      // localStorage.setItem('vuex', JSON.stringify(state))
    },
    // 取消店铺收藏，就要从数组中删除
    cancel_collect(state, payload) {
      var index = state.collectlist.findIndex((item) => {
        return item.mtWmPoiId == payload.mtWmPoiId;
      })
      // 如果返回值不等于-1，则表示找到
      if (index != -1) {
        // 将找到的店铺，在点击收藏按钮时，从数组里删掉
        state.collectlist.splice(index, 1);
        // 轻提示
        Toast({
          message: '店铺取消收藏',
          icon: 'passed',
        });
      }
      // 将数据存储到本地存储
      // localStorage.setItem('vuex', JSON.stringify(state));
    },

    // 加入购物车
    toShop(state, payload) {
      var index = state.shopCartList.findIndex((item) => {
        return item.id == payload.id;
      })
      if (index == -1) {
        payload.count = 1;
        state.shopCartList.push(payload);
        Toast('加入购物车成功');
      } else {
        Toast('请不要重复加入购物车');
      }
    },
    // 增加商品
    shopAdd(state, payload) {
      state.shopCartList[payload].count++;
      console.log(payload);
    },
    // 减少商品
    shopSub(state, payload) {
      state.shopCartList[payload].count--;
    },
    // 清空商品
    clearshopcart(state) {
      state.shopCartList = [];
    }
  },
  actions: {
  },
  modules: { //分模块处理
  },
  // 日志打印插件，可以看到数据存储的变化
  plugins: [createLogger(), createPersistedState()]

})
